/**
 * @file         jt_808_frame_upload.h
 * @brief        0x0900->0xFF48扩展上报
 * @note    
 * @author       fza
 * @date         2020-12-28
 * @version      1.0
 *
 * @par          修改日志
 * <table>
 * <tr><th>Date        <th>Version               <th>Author          <th>Description
 * <tr><td>2020-02-14  <td>1.0                   <td>fza            <td>创建初始版本
 * @copyright    杭州鸿泉物联网技术股份有限公司
 */
#ifndef _BSC_JT_808_FRAME_UPLOAD_H_
#define _BSC_JT_808_FRAME_UPLOAD_H_

#include "mfc/mfc_mem_codec.h"
#include "ofc/ofc_string.h"
#include "jtmsg808/jtc_msg_808_2013.h"
#include "alog/a_log.h"
#include "jtmsg808/jtc_msg_808_codec.h"
#include "bsc_jt808/bsc_jt808_proc_param.h"
#ifdef __cplusplus
extern "C" {
#endif

/**
 * 扩展上报类型
 */
enum TBsJt808Ec2ExtUploadTypeEnumTag
{
    kBsJt808Ec2ExtCrackInfo    = 0,    ///< 软件异常信息
    kBsJt808Ec2ExtConfigInfo   = 1,    ///< 配置上传
    kBsJt808Ec2ExtDiskInfo     = 2,    ///< 磁盘信息
    kBsJt808Ec2ExtSysFailInfo  = 3,    ///< 系统错误信息
    kBsJt808Ec2ExtVersion      = 4,    ///< 版本上报
    kBsJt808Ec2ExtVehicleStatus = 5,   ///< 车辆状态
    kBsJt808Ec2ExtAlarmStatus  = 6,    ///< 报警状态
    kBsJt808Ec2ExtGPSPos       = 7,    ///< GPS位置
    kBsJt808Ec2ExtHardwareVer  = 8,    ///< 硬件版本上报
    kBsJt808Ec2ExtCameraState  = 9,    ///< 摄像头状态
    kBsJt808Ec2ExtAbosParam    = 10,   ///< Abos参数上报
    kBsJt808Ec2ExtVehicleType  = 11,   ///< 车辆类型
    kBsJt808Ec2ExtSimInfo      = 12,   ///< SIM卡信息
    kBsJt808Ec2ExtAbosParamExt = 13,   ///< Abos参数扩展上报
    kBsJt808Ec2ExtTrmModel     = 15,   ///< 终端型号上报
    kBsJt808Ec2ExtTrmRunStatus = 16,   ///< 终端运行统计数据上报
};
typedef enum TBsJt808Ec2ExtUploadTypeEnumTag TBsJt808Ec2ExtUploadTypeEnum;

void BsJt808Ec2ExtUploadDoSendAbosParamExt(TJtMsg808 *sender, TBsJt808FrameChannel *channel);

/**
 * 本函数用于向上报JT808设备ABos参数信息
 * 
 * @param channel 指向JT808通信通道的结构体指针，包含通信通道的具体信息，如通道ID等。
 * @param jt808_id_list 包含JT808设备需要上报的ID数组. 为NULL时表示上报全部ABos参数信息
 * @param list_cnt 表示jt808_id_list数组中设备ID的数量，用于指示数组的大小。
 */
void BsJt808Ec2ExtUploadAbosParamsReport(TBsJt808FrameChannel *channel, UInt32 *jt808_id_list, Int32 list_cnt);

#ifdef __cplusplus
} // extern "C" {
#endif

#endif
